#ifndef __DEV_INPUT_H__
#define __DEV_INPUT_H__

#include "device_def.h"

#ifdef __cplusplus
extern "C" {
#endif

// INPUT事件
enum {
    INPUT_EVT_ACTIVE = 0U,      // 输入激活事件
};

// INPUT 设备控制字
enum {
    INPUT_CMD_MONITOR = 0U,     // 监视输入控制命令
};

// INPUT结构体
DEVICE_CONTEXT_DECLARE 
(
    Dev_Input ,

    struct {
        /**
        * @brief 都输入设备的状态
        * @return uint8_t 输入设备状态
        */
        uint8_t (*pfnRead)(void);
    },

    struct {
        uint8_t     u8Active;       // 有效状态
        uint8_t     u8State;        // 当前状态
        uint16_t    u16Reserved;    // 保留字段
    }

);

// INPUT 设备大小
#define DEV_INPUT_SIZE sizeof(Dev_Input_t)

#ifdef __cplusplus
}
#endif

#endif /* __DEV_INPUT_H__ */
